package com.fumin.dao;

import com.fumin.model.SysDept;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysDeptMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysDept record);

    int insertSelective(SysDept record);

    SysDept selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysDept record);

    int updateByPrimaryKey(SysDept record);

    /**
     * 获取所有的部门列表
     * @return
     */
    List<SysDept> getAllDept();

    /**
     * 查找level层级下面的所有子孙级部门
     * 例如：LEVEL 为1,那么查询LEVEL为1.开头的所有部门
     * //@Param 是在Mapper.xml文件中利用#{}中的变量
     * @param level
     * @return
     */
    List<SysDept> getChildDeptListByLevel(@Param("level") String level);

    /**
     * 批量更新LEVEL
     * @param sysDeptList
     */
    void batchUpdateLevel(@Param("sysDeptList") List<SysDept> sysDeptList);

    /**
     * 判断同一个部门下是否有重复的子部门
     * @param parentId
     * @param name
     * @param id
     * @return
     */
    int countByNameAndParentId(@Param("parentId") Integer parentId,@Param("name") String name,@Param("id") Integer id);

    /**
     * 查找所有的子节点
     * @param deptId 父部门ID
     * @return
     */
    int countByParentId(@Param("deptId") int deptId);
}